home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 01 (1982-09)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 01 (1982-09)(Softdisk)(Side B).do / ARTILLERY.bas < prev    next >
BASIC Source File  |  1996-12-24  |  5KB  |  106 lines

  1. 0  TEXT : HOME : REM    ARTILLERY PRACTICE
  2. 1  ONERR  GOTO 8
  3. 2  GOSUB 68: REM  TITLE PAGE
  4. 3  DIM E(40)
  5. 4 Q =  -16336
  6. 5  GOSUB 55: REM  NEW TERRAIN
  7. 6 F = 0
  8. 7  GOSUB 45: REM  NEW GUN & TARGET
  9. 8  REM 
  10. 9  VTAB 23: HTAB 30: PRINT HIT"/"A;
  11. 10  VTAB 21: HTAB 15: PRINT W$;
  12. 11  VTAB 21: HTAB 1: POKE 34,20
  13. 12  INPUT "POWDER: ";P: VTAB 21: HTAB 15: PRINT W$;
  14. 13  IF P = 0  THEN  TEXT : END 
  15. 14  IF P = 999  THEN 5
  16. 15  IF P <6  THEN  VTAB 22: HTAB 1: PRINT "NOT ENOUGH!";: VTAB 21: HTAB 1: GOTO 12
  17. 16  IF P >90  THEN  VTAB 22: HTAB 1: PRINT "TOO MUCH!! ";: VTAB 21: HTAB 1: GOTO 12
  18. 17 P = P *1.9
  19. 18  VTAB 22: HTAB 1
  20. 19  INPUT "ELEVATION: ";E: IF E <6  OR E >90  THEN  VTAB 23: HTAB 1: PRINT "IMPOSSIBLE ANGLE!";: VTAB 22: HTAB 1: GOTO 19
  21. 20 G =  -9.8
  22. 21  POKE  -16368,0
  23. 22 E = E *.01745
  24. 23  PRINT "PRESS ANY KEY TO FIRE !";: WAIT  -16384,128: POKE  -16368,0: VTAB 23: HTAB 1: PRINT "                        ";
  25. 24 PX = GX:PY = GY:TM = 1
  26. 25 PX = GX + INT((P * COS(E) *TM)/10 +W *TM)
  27. 26 PY = GY - INT(P * SIN(E) *TM +G/2 *TM *TM)/10
  28. 27  IF PY <1  THEN PY = 1
  29. 28  IF PX >279  THEN 31: REM  MISSED...
  30. 29 XP =  INT(PX/7): IF PY > = E(XP)  THEN 34: REM                HIT GROUND
  31. 30  HPLOT PX,PY:TM = TM +1: GOTO 25
  32. 31  REM  MISSED
  33. 32 A = A +1
  34. 33  GOTO 8
  35. 34  REM   HIT THE GROUND...
  36. 35 A = A +1
  37. 36 PY = E(XP)
  38. 37  IF PX = TX  THEN  VTAB 21: HTAB 27: PRINT "DIRECT HIT!!";:HIT = HIT +2:F = 1: VTAB 23: HTAB 15: GOTO 39
  39. 38  IF XP = TX/7  THEN  VTAB 21: HTAB 30: PRINT "HIT!!!":HIT = HIT +1:F = 1: GOTO 39
  40. 39  REM   EXPLOSION...
  41. 40 PX = 7 *XP
  42. 41  FOR N = 0 TO 10:Z =  PEEK(Q): HPLOT PX +N,PY -N: HPLOT PX -N,PY -N: HPLOT PX,PY -N: NEXT N
  43. 42  POKE  -16368,0
  44. 43  IF F = 1  THEN  VTAB 23: HTAB 1: PRINT "PRESS ANY KEY";: WAIT  -16384,128: POKE  -16368,0: GOTO 5
  45. 44  GOTO 8
  46. 45  REM                  NEW GUN & TARGET
  47. 46 P = 0
  48. 47 GX =  INT( RND(1) *10 +1):GY = E(GX):GX = GX *7
  49. 48 TX = 19 + INT( RND(1) *20 +1):TY = E(TX):TX = TX *7
  50. 49 X = GX:Y = GY: GOSUB 52
  51. 50 X = TX:Y = TY: GOSUB 52
  52. 51  RETURN 
  53. 52  IF P = 1  THEN 54
  54. 53  FOR I = 0 TO 5: HPLOT X -2,Y -I TO X +2,Y -I: NEXT I:P = 1: RETURN 
  55. 54  HPLOT X,Y TO X,Y -5 TO X +3,Y -3 TO X,Y -2: RETURN 
  56. 55  REM            NEW TERRAIN                      
  57. 56  HOME :W =  INT( RND(1) *60) -30: REM  WIND
  58. 57  IF W >0  THEN W$ =  STR$(W) +"->"
  59. 58  IF W <0  THEN W$ = "<-" + STR$( ABS(W))
  60. 59  IF W = 0  THEN W$ =  STR$(W)
  61. 60 W$ = "  " +W$ +"  "
  62. 61 SN =  SGN(W):W = ((W/9.49) ^2) *SN/3
  63. 62  HGR : HCOLOR= 3: HPLOT 0,159 - RND(1) *10
  64. 63  FOR I = 1 TO 39:S = S +( RND(1) *20 -12): IF S >60  THEN S = S/2
  65. 64  IF S <1  THEN S =  -S
  66. 65 E(I) = 156 - INT(S): HPLOT  TO 7 *I,E(I): NEXT I
  67. 66  HPLOT 0,159 TO 279,159
  68. 67  RETURN 
  69. 68  VTAB 8: HTAB 11: PRINT "A R T I L L E R Y": VTAB 10: HTAB 13: PRINT "P R A C T I C E": VTAB 20: HTAB 6: PRINT "WOULD YOU LIKE INSTRUCTIONS ?": GET I$: IF I$ < >"Y"  THEN  RETURN 
  70. 69  TEXT : HOME : PRINT "   THIS PROGRAM GENERATES  ARTILLERY": PRINT : PRINT "PROBLEMS FOR YOUR SOLUTION."
  71. 70  PRINT : PRINT "   YOU HAVE CONTROL OVER THE ELEVATION": PRINT : PRINT "OF THE BARREL  OF THE FIELD PEICE": PRINT : PRINT "IN DEGREES ABOVE THE HORIZON (6 TO 90)"
  72. 71  PRINT : PRINT "AND THE AMOUNT OF POWDER TO USE IN": PRINT : PRINT "POUNDS (6 TO 90).
  73. 72  PRINT : PRINT "   THE DESIGN OF THE TERRAIN IS UNDER": PRINT : PRINT "MY CONTROL,  AS IS THE PLACEMENT OF THE": PRINT : PRINT "CANNON AND THE TARGET."
  74. 73  PRINT : HTAB 9: PRINT "HIT ANY KEY TO CONTINUE": WAIT  -16384,128: POKE  -16368,0
  75. 74  HOME : PRINT "   IF YOU DON'T LIKE A PARTICULAR ": PRINT : PRINT "SET-UP, JUST ENTER '999' WHEN ASKED": PRINT : PRINT "FOR POWDER, AND A NEW SITUATION WILL"
  76. 75  PRINT : PRINT "BE CONSTRUCTED.": PRINT : PRINT "   WHEN YOU ARE READY TO QUIT, ENTER": PRINT : PRINT "'0' FOR POWDER."
  77. 76  PRINT : PRINT "   YOUR RECORD OF HITS/ATTEMPTS WILL": PRINT : PRINT "BE SHOWN AT THE BOTTOM OF THE SCREEN."
  78. 77  PRINT : PRINT : HTAB 9: PRINT "HIT ANY KEY TO CONTINUE": WAIT  -16384,128: POKE  -16368,0
  79. 78  HOME : PRINT "   THE CANNON IS REPRESENTED BY A BLOCK": PRINT : PRINT "ON THE LEFT SIDE OF THE SCREEN, AND THE": PRINT : PRINT "TARGET BY A SMALL FLAG ON THE": PRINT : PRINT "RIGHT."
  80. 79  PRINT : PRINT "   JUST TO MAKE IT INTERESTING, EACH": PRINT : PRINT "SITUATION WILL HAVE A DIFFERENT": PRINT : PRINT "WIND FACTOR, WITH DIRECTION SHOWN BY"
  81. 80  PRINT : PRINT "AN ARROW AND VELOCITY SHOWN IN MPH.": PRINT : PRINT : PRINT : HTAB 15: PRINT "GOOD LUCK": PRINT : PRINT : HTAB 10: PRINT "HIT ANY KEY TO START": WAIT  -16384,128: POKE  -16368,0
  82. 81  RETURN 
  83. 82  PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>"
  84. 83  REM 
  85. 84  REM  **********************
  86. 85  REM 
  87. 86  REM    THIS PROGRAM WAS
  88. 87  REM  INSPIRED BY A SIMILAR
  89. 88  REM  PROGRAM APPEARING IN
  90. 89  REM  AUGUST 1982 CREATIVE
  91. 90  REM  COMPUTING MAGAZINE, BY
  92. 91  REM  JOHN W. RHODES.
  93. 92  REM  
  94. 93  REM  APPLE HI-RES VERSION
  95. 94  REM           BY
  96. 95  REM      JACK KENNE
  97. 96  REM  5046 CASTLE CREEK
  98. 97  REM  HOUSTON, TEXAS 77053
  99. 98  REM  JUNE 26, 1982
  100. 99  REM 
  101. 100  REM 
  102. 101  REM  **********************
  103. 102  REM 
  104. 103  REM 
  105. 104  REM 
  106. 105  REM